package com.why.cachecloud.web.service;

import com.why.cachecloud.entity.ServerInfo;
import com.why.cachecloud.entity.ServerStatus;
import com.why.cachecloud.service.server.data.Server;

import java.util.List;

public interface ServerDataService {
	/**
	 * 查询服务器基本信息
	 * @param ip
	 * @return @ServerInfo
	 */
	public ServerInfo queryServerInfo(String ip);

	/**
	 * 获取所有机器的系统信息
	 * @return
	 */
	public List<ServerInfo> getAllServerInfo();
	
	/**
	 * 保存服务器发行版信息
	 * @param ip
	 * @param dist from /etc/issue
	 */
	public void saveServerInfo(String ip, String dist);
	
	/**
	 * 保存/更新服务器信息
	 * @param server
	 * @return 影响的行数
	 */
	public Integer saveAndUpdateServerInfo(Server server);
	
	/**
	 * 查询服务器状态
	 * @param ip
	 * @param date
	 * @return List<ServerStatus>
	 */
	public List<ServerStatus> queryServerStatus(String ip, String date);
	
	/**
	 * 查询服务器状态
	 * @param ip
	 * @param date
	 * @return List<ServerStatus>
	 */
	public List<ServerStatus> queryServerOverview(String ip, String date);
	/**
	 * 查询服务器状态
	 * @param ip
	 * @param date
	 * @return List<ServerStatus>
	 */
	public List<ServerStatus> queryServerCpu(String ip, String date);
	/**
	 * 查询服务器状态
	 * @param ip
	 * @param date
	 * @return List<ServerStatus>
	 */
	public List<ServerStatus> queryServerNet(String ip, String date);
	/**
	 * 查询服务器状态
	 * @param ip
	 * @param date
	 * @return List<ServerStatus>
	 */
	public List<ServerStatus> queryServerDisk(String ip, String date);
	
	/**
	 * 保存服务器状态
	 */
	void saveServerStat(Server server);
}
